home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / AIncludes / MacTCP.a < prev    next >
Text File  |  1996-05-01  |  22KB  |  604 lines

  1. ;
  2. ;    File:        MacTCP.a
  3. ;
  4. ;    Contains:    TCP Manager Interfaces.
  5. ;
  6. ;    Version:    Technology:    MacTCP 2.0.6
  7. ;                Release:    Universal Interfaces 3.0d3 on Copland DR1
  8. ;
  9. ;    Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10. ;
  11. ;    Bugs?:        If you find a problem with this file, send the file and version
  12. ;                information (from above) and the problem description to:
  13. ;
  14. ;                    Internet:    apple.bugs@applelink.apple.com
  15. ;                    AppleLink:    APPLE.BUGS
  16. ;
  17. ;
  18.     IF &TYPE('__MACTCP__') = 'UNDEFINED' THEN
  19. __MACTCP__ SET 1
  20.  
  21.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  22.     include 'Types.a'
  23.     ENDIF
  24.     IF &TYPE('__MIXEDMODE__') = 'UNDEFINED' THEN
  25.     include 'MixedMode.a'
  26.     ENDIF
  27.     IF &TYPE('__APPLETALK__') = 'UNDEFINED' THEN
  28.     include 'AppleTalk.a'
  29.     ENDIF
  30.     IF FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED THEN
  31. ;
  32. ;Developer Notes:
  33. ;        0. This MacTCP header replaces what used to be defined in the following header files
  34. ;            MacTCPCommonTypes.h
  35. ;            GetMyIPAddr.h
  36. ;            MiscIPPB.h
  37. ;            TCPPB.h
  38. ;            UDPPB.h 
  39. ;            
  40. ;            When the various control calls are made to the ip driver, you must set up a 
  41. ;            NewRoutineDescriptor for every non-nil completion routine and/or notifyProc parameter.  
  42. ;            Otherwise, the 68K driver code, will not correctly call your routine.
  43. ;        1. For ipctlGetAddr Control calls, use NewGetIPIOCompletionProc
  44. ;            to set up a GetIPIOCompletionUPP universal procptr to pass as
  45. ;            the ioCompletion parameter.
  46. ;        2. For the ipctlEchoICMP and ipctlLAPStats Control calls, use 
  47. ;            NewIPIOCompletion to set up a IPIOCompletionUPP universal procptr
  48. ;            to pass in the ioCompletion field of the parameter block.
  49. ;        3. For TCPCreatePB Control calls, use NewTCPNotifyProc to set up a
  50. ;            TCPNotifyUPP universal procptr to pass in the notifyProc field
  51. ;            of the parameter block
  52. ;        4. For all of the TCP Control calls using the TCPiopb parameter block,
  53. ;            use NewTCPIOCompletionProc to set up a TCPIOCompletionUPP
  54. ;            universal procptr to pass in the ioCompletion field of the paramter
  55. ;            block.
  56. ;        5. For UDBCreatePB Control calls, use NewUDPNotifyProc to set up a
  57. ;            UDPNotifyUPP universal procptr to pass in the notifyProc field
  58. ;            of the parameter block
  59. ;        6. For all of the UDP Control calls using the UDPiopb parameter block,
  60. ;            use NewUDPIOCompletionProc to set up a UDPIOCompletionUPP
  61. ;            universal procptr to pass in the ioCompletion field of the paramter
  62. ;            block.
  63. ;        7. For all calls implementing a notifyProc or ioCompletion routine
  64. ;            which was set up using a NewTCPRoutineProc call, do not call
  65. ;            DisposeRoutineSDescriptor on the universal procptr until
  66. ;            after the completion or notify proc has completed.
  67. ;
  68. ;  MacTCP return Codes in the range -23000 through -23049 
  69.  
  70. inProgress                        EQU        1                    ; I/O in progress 
  71. ipBadLapErr                        EQU        -23000                ; bad network configuration 
  72. ipBadCnfgErr                    EQU        -23001                ; bad IP configuration error 
  73. ipNoCnfgErr                        EQU        -23002                ; missing IP or LAP configuration error 
  74. ipLoadErr                        EQU        -23003                ; error in MacTCP load 
  75. ipBadAddr                        EQU        -23004                ; error in getting address 
  76. connectionClosing                EQU        -23005                ; connection is closing 
  77. invalidLength                    EQU        -23006
  78. connectionExists                EQU        -23007                ; request conflicts with existing connection 
  79. connectionDoesntExist            EQU        -23008                ; connection does not exist 
  80. insufficientResources            EQU        -23009                ; insufficient resources to perform request 
  81. invalidStreamPtr                EQU        -23010
  82. streamAlreadyOpen                EQU        -23011
  83. connectionTerminated            EQU        -23012
  84. invalidBufPtr                    EQU        -23013
  85. invalidRDS                        EQU        -23014
  86. invalidWDS                        EQU        -23014
  87. openFailed                        EQU        -23015
  88. commandTimeout                    EQU        -23016
  89. duplicateSocket                    EQU        -23017
  90. ;  Error codes from internal IP functions 
  91.  
  92. ipDontFragErr                    EQU        -23032                ; Packet too large to send w/o fragmenting 
  93. ipDestDeadErr                    EQU        -23033                ; destination not responding 
  94. icmpEchoTimeoutErr                EQU        -23035                ; ICMP echo timed-out 
  95. ipNoFragMemErr                    EQU        -23036                ; no memory to send fragmented pkt 
  96. ipRouteErr                        EQU        -23037                ; can't route packet off-net 
  97. nameSyntaxErr                    EQU        -23041
  98. cacheFault                        EQU        -23042
  99. noResultProc                    EQU        -23043
  100. noNameServer                    EQU        -23044
  101. authNameErr                        EQU        -23045
  102. noAnsErr                        EQU        -23046
  103. dnrErr                            EQU        -23047
  104. outOfMemory                        EQU        -23048
  105.  
  106. BYTES_16WORD                    EQU        2                    ; bytes per = 16, bit ip word 
  107. BYTES_32WORD                    EQU        4                    ; bytes per = 32, bit ip word 
  108. BYTES_64WORD                    EQU        8                    ; bytes per = 64, bit ip word 
  109. ;  8-bit quantity 
  110. ; typedef UInt8                         b_8
  111.  
  112. ;  16-bit quantity 
  113. ; typedef UInt16                         b_16
  114.  
  115. ;  32-bit quantity 
  116. ; typedef UInt32                         b_32
  117.  
  118. ;  IP address is 32-bits 
  119. ; typedef b_32                             ip_addr
  120.  
  121. ip_addrbytes            RECORD 0
  122. addr                     ds.l    1                ; offset: $0 (0)
  123.                          ORG 0
  124. byte                     ds.b    4                ; offset: $0 (0)
  125. sizeof                     EQU *                    ; size:   $4 (4)
  126.                         ENDR
  127. wdsEntry                RECORD 0
  128. length                     ds.w    1                ; offset: $0 (0)        ;  length of buffer 
  129. ptr                         ds.l    1                ; offset: $2 (2)        ;  pointer to buffer 
  130. sizeof                     EQU *                    ; size:   $6 (6)
  131.                         ENDR
  132. rdsEntry                RECORD 0
  133. length                     ds.w    1                ; offset: $0 (0)        ;  length of buffer 
  134. ptr                         ds.l    1                ; offset: $2 (2)        ;  pointer to buffer 
  135. sizeof                     EQU *                    ; size:   $6 (6)
  136.                         ENDR
  137. ; typedef unsigned long                 BufferPtr
  138.  
  139. ; typedef unsigned long                 StreamPtr
  140.  
  141.  
  142. netUnreach                        EQU        0
  143. hostUnreach                        EQU        1
  144. protocolUnreach                    EQU        2
  145. portUnreach                        EQU        3
  146. fragReqd                        EQU        4
  147. sourceRouteFailed                EQU        5
  148. timeExceeded                    EQU        6
  149. parmProblem                        EQU        7
  150. missingOption                    EQU        8
  151. lastICMPMsgType                    EQU        32767
  152. ; typedef unsigned short                 ICMPMsgType
  153.  
  154. ; typedef b_16                             ip_port
  155.  
  156. ICMPReport                RECORD 0
  157. streamPtr                 ds.l    1                ; offset: $0 (0)
  158. localHost                 ds.l    1                ; offset: $4 (4)
  159. localPort                 ds.w    1                ; offset: $8 (8)
  160. remoteHost                 ds.l    1                ; offset: $A (10)
  161. remotePort                 ds.w    1                ; offset: $E (14)
  162. reportType                 ds.w    1                ; offset: $10 (16)
  163. optionalAddlInfo         ds.w    1                ; offset: $12 (18)
  164. optionalAddlInfoPtr         ds.l    1                ; offset: $14 (20)
  165. sizeof                     EQU *                    ; size:   $18 (24)
  166.                         ENDR
  167. ;  csCode to get our IP address 
  168.  
  169. ipctlGetAddr                    EQU        15
  170.  
  171.  
  172. GetAddrParamBlock        RECORD 0
  173. qLink                     ds.l    1                ; offset: $0 (0)
  174. qType                     ds.w    1                ; offset: $4 (4)
  175. ioTrap                     ds.w    1                ; offset: $6 (6)
  176. ioCmdAddr                 ds.l    1                ; offset: $8 (8)
  177. ioCompletion             ds.l    1                ; offset: $C (12)
  178. ioResult                 ds.w    1                ; offset: $10 (16)
  179. ioNamePtr                 ds.l    1                ; offset: $12 (18)
  180. ioVRefNum                 ds.w    1                ; offset: $16 (22)
  181. ioCRefNum                 ds.w    1                ; offset: $18 (24)
  182. csCode                     ds.w    1                ; offset: $1A (26)
  183. ourAddress                 ds.l    1                ; offset: $1C (28)        ;  our IP address 
  184. ourNetMask                 ds.l    1                ; offset: $20 (32)        ;  our IP net mask 
  185. sizeof                     EQU *                    ; size:   $24 (36)
  186.                         ENDR
  187. ;  control codes 
  188.  
  189. ipctlEchoICMP                    EQU        17                    ; send icmp echo 
  190. ipctlLAPStats                    EQU        19                    ; get lap stats 
  191.  
  192.  
  193. ICMPParamBlock            RECORD 0
  194. qLink                     ds.l    1                ; offset: $0 (0)
  195. qType                     ds.w    1                ; offset: $4 (4)
  196. ioTrap                     ds.w    1                ; offset: $6 (6)
  197. ioCmdAddr                 ds.l    1                ; offset: $8 (8)
  198. ioCompletion             ds.l    1                ; offset: $C (12)
  199. ioResult                 ds.w    1                ; offset: $10 (16)
  200. ioNamePtr                 ds.l    1                ; offset: $12 (18)
  201. ioVRefNum                 ds.w    1                ; offset: $16 (22)
  202. ioCRefNum                 ds.w    1                ; offset: $18 (24)
  203. csCode                     ds.w    1                ; offset: $1A (26)
  204. params                     ds.w    11                ; offset: $1C (28)
  205. echoRequestOut             ds.l    1                ; offset: $32 (50)        ;  time in ticks of when the echo request went out 
  206. echoReplyIn                 ds.l    1                ; offset: $36 (54)        ;  time in ticks of when the reply was received 
  207. echoedData                 ds        rdsEntry        ; offset: $3A (58)        ;  data received in responce 
  208. options                     ds.l    1                ; offset: $40 (64)
  209. userDataPtr                 ds.l    1                ; offset: $44 (68)
  210. sizeof                     EQU *                    ; size:   $48 (72)
  211.                         ENDR
  212.  
  213.  
  214. IPParamBlock            RECORD 0
  215. qLink                     ds.l    1                ; offset: $0 (0)
  216. qType                     ds.w    1                ; offset: $4 (4)
  217. ioTrap                     ds.w    1                ; offset: $6 (6)
  218. ioCmdAddr                 ds.l    1                ; offset: $8 (8)
  219. ioCompletion             ds.l    1                ; offset: $C (12)
  220. ioResult                 ds.w    1                ; offset: $10 (16)
  221. ioNamePtr                 ds.l    1                ; offset: $12 (18)
  222. ioVRefNum                 ds.w    1                ; offset: $16 (22)
  223. ioCRefNum                 ds.w    1                ; offset: $18 (24)
  224. csCode                     ds.w    1                ; offset: $1A (26)
  225. dest                     ds.l    1                ; offset: $1C (28)        ;  echo to IP address 
  226. data                     ds        wdsEntry        ; offset: $20 (32)
  227. timeout                     ds.w    1                ; offset: $26 (38)
  228. options                     ds.l    1                ; offset: $28 (40)
  229. optLength                 ds.w    1                ; offset: $2C (44)
  230. icmpCompletion             ds.l    1                ; offset: $2E (46)
  231. userDataPtr                 ds.l    1                ; offset: $32 (50)
  232.                          ORG 28
  233. lapStatsPtr                 ds.l    1                ; offset: $1C (28)
  234.                          ORG 54
  235. sizeof                     EQU *                    ; size:   $36 (54)
  236.                         ENDR
  237. nbp_entry                RECORD 0
  238. ip_address                 ds.l    1                ; offset: $0 (0)        ;  IP address 
  239. at_address                 ds        AddrBlock        ; offset: $4 (4)        ;  matching AppleTalk address 
  240. gateway                     ds.b    1                ; offset: $8 (8)        ;  TRUE if entry for a gateway 
  241. valid                     ds.b    1                ; offset: $9 (9)        ;  TRUE if LAP address is valid 
  242. probing                     ds.b    1                ; offset: $A (10)        ;  TRUE if NBP lookup pending 
  243. afiller                     ds.b    1                ; offset: $B (11)        ;  Filler for proper byte alignment     
  244. age                         ds.l    1                ; offset: $C (12)        ;  ticks since cache entry verified 
  245. access                     ds.l    1                ; offset: $10 (16)        ;  ticks since last access 
  246. filler                     ds.b    116                ; offset: $14 (20)        ;  for internal use only !!! 
  247. sizeof                     EQU *                    ; size:   $88 (136)
  248.                         ENDR
  249. Enet_addr                RECORD 0
  250. en_hi                     ds.w    1                ; offset: $0 (0)
  251. en_lo                     ds.l    1                ; offset: $2 (2)
  252. sizeof                     EQU *                    ; size:   $6 (6)
  253.                         ENDR
  254. arp_entry                RECORD 0
  255. age                         ds.w    1                ; offset: $0 (0)        ;  cache aging field 
  256. protocol                 ds.w    1                ; offset: $2 (2)        ;  Protocol type 
  257. ip_address                 ds.l    1                ; offset: $4 (4)        ;  IP address 
  258. en_address                 ds        Enet_addr        ; offset: $8 (8)        ;  matching Ethernet address 
  259. sizeof                     EQU *                    ; size:   $E (14)
  260.                         ENDR
  261. LAPStatsAddrXlation        RECORD 0
  262. arp_table                 ds.l    1                ; offset: $0 (0)
  263.                          ORG 0
  264. nbp_table                 ds.l    1                ; offset: $0 (0)
  265. sizeof                     EQU *                    ; size:   $4 (4)
  266.                         ENDR
  267. LAPStats                RECORD 0
  268. ifType                     ds.w    1                ; offset: $0 (0)
  269. ifString                 ds.l    1                ; offset: $2 (2)
  270. ifMaxMTU                 ds.w    1                ; offset: $6 (6)
  271. ifSpeed                     ds.l    1                ; offset: $8 (8)
  272. ifPhyAddrLength             ds.w    1                ; offset: $C (12)
  273. ifPhysicalAddress         ds.l    1                ; offset: $E (14)
  274. AddrXlation                 ds        LAPStatsAddrXlation ; offset: $12 (18)
  275. slotNumber                 ds.w    1                ; offset: $16 (22)
  276. sizeof                     EQU *                    ; size:   $18 (24)
  277.                         ENDR
  278. ;  number of ARP table entries 
  279.  
  280. ARP_TABLE_SIZE                    EQU        20
  281.  
  282. NBP_TABLE_SIZE                    EQU        20                    ; number of NBP table entries 
  283. NBP_MAX_NAME_SIZE                EQU        28
  284. ;  Command codes 
  285.  
  286. TCPCreate                        EQU        30
  287. TCPPassiveOpen                    EQU        31
  288. TCPActiveOpen                    EQU        32
  289. TCPSend                            EQU        34
  290. TCPNoCopyRcv                    EQU        35
  291. TCPRcvBfrReturn                    EQU        36
  292. TCPRcv                            EQU        37
  293. TCPClose                        EQU        38
  294. TCPAbort                        EQU        39
  295. TCPStatus                        EQU        40
  296. TCPExtendedStat                    EQU        41
  297. TCPRelease                        EQU        42
  298. TCPGlobalInfo                    EQU        43
  299. TCPCtlMax                        EQU        49
  300.  
  301. TCPClosing                        EQU        1
  302. TCPULPTimeout                    EQU        2
  303. TCPTerminate                    EQU        3
  304. TCPDataArrival                    EQU        4
  305. TCPUrgent                        EQU        5
  306. TCPICMPReceived                    EQU        6
  307. lastEvent                        EQU        32767
  308. ; typedef unsigned short                 TCPEventCode
  309.  
  310.  
  311. TCPRemoteAbort                    EQU        2
  312. TCPNetworkFailure                EQU        3
  313. TCPSecPrecMismatch                EQU        4
  314. TCPULPTimeoutTerminate            EQU        5
  315. TCPULPAbort                        EQU        6
  316. TCPULPClose                        EQU        7
  317. TCPServiceError                    EQU        8
  318. lastReason                        EQU        32767
  319. ; typedef unsigned short                 TCPTerminationReason
  320.  
  321. ; typedef unsigned short                 tcp_port
  322.  
  323. ;  ValidityFlags 
  324.  
  325. timeoutValue                    EQU        $80
  326. timeoutAction                    EQU        $40
  327. typeOfService                    EQU        $20
  328. precedence                        EQU        $10
  329. ;  TOSFlags 
  330.  
  331. lowDelay                        EQU        $01
  332. throughPut                        EQU        $02
  333. reliability                        EQU        $04
  334. TCPCreatePB                RECORD 0
  335. rcvBuff                     ds.l    1                ; offset: $0 (0)
  336. rcvBuffLen                 ds.l    1                ; offset: $4 (4)
  337. notifyProc                 ds.l    1                ; offset: $8 (8)
  338. userDataPtr                 ds.l    1                ; offset: $C (12)
  339. sizeof                     EQU *                    ; size:   $10 (16)
  340.                         ENDR
  341. TCPOpenPB                RECORD 0
  342. ulpTimeoutValue             ds.b    1                ; offset: $0 (0)
  343. ulpTimeoutAction         ds.b    1                ; offset: $1 (1)
  344. validityFlags             ds.b    1                ; offset: $2 (2)
  345. commandTimeoutValue         ds.b    1                ; offset: $3 (3)
  346. remoteHost                 ds.l    1                ; offset: $4 (4)
  347. remotePort                 ds.w    1                ; offset: $8 (8)
  348. localHost                 ds.l    1                ; offset: $A (10)
  349. localPort                 ds.w    1                ; offset: $E (14)
  350. tosFlags                 ds.b    1                ; offset: $10 (16)
  351. precedence                 ds.b    1                ; offset: $11 (17)
  352. dontFrag                 ds.b    1                ; offset: $12 (18)
  353. timeToLive                 ds.b    1                ; offset: $13 (19)
  354. security                 ds.b    1                ; offset: $14 (20)
  355. optionCnt                 ds.b    1                ; offset: $15 (21)
  356. options                     ds.b    40                ; offset: $16 (22)
  357. userDataPtr                 ds.l    1                ; offset: $3E (62)
  358. sizeof                     EQU *                    ; size:   $42 (66)
  359.                         ENDR
  360. TCPSendPB                RECORD 0
  361. ulpTimeoutValue             ds.b    1                ; offset: $0 (0)
  362. ulpTimeoutAction         ds.b    1                ; offset: $1 (1)
  363. validityFlags             ds.b    1                ; offset: $2 (2)
  364. pushFlag                 ds.b    1                ; offset: $3 (3)
  365. urgentFlag                 ds.b    1                ; offset: $4 (4)
  366. filler                     ds.b    1                ; offset: $5 (5)        ;  Filler for proper byte alignment     
  367. wdsPtr                     ds.l    1                ; offset: $6 (6)
  368. sendFree                 ds.l    1                ; offset: $A (10)
  369. sendLength                 ds.w    1                ; offset: $E (14)
  370. userDataPtr                 ds.l    1                ; offset: $10 (16)
  371. sizeof                     EQU *                    ; size:   $14 (20)
  372.                         ENDR
  373. ;  for receive and return rcv buff calls 
  374. ;    Note: the filler in the following structure is in a different location than 
  375. ;          that specified in the Programmer's Guide.  
  376. TCPReceivePB            RECORD 0
  377. commandTimeoutValue         ds.b    1                ; offset: $0 (0)
  378. markFlag                 ds.b    1                ; offset: $1 (1)
  379. urgentFlag                 ds.b    1                ; offset: $2 (2)
  380. filler                     ds.b    1                ; offset: $3 (3)        ;  Filler for proper byte alignment  
  381. rcvBuff                     ds.l    1                ; offset: $4 (4)
  382. rcvBuffLen                 ds.w    1                ; offset: $8 (8)
  383. rdsPtr                     ds.l    1                ; offset: $A (10)
  384. rdsLength                 ds.w    1                ; offset: $E (14)
  385. secondTimeStamp             ds.w    1                ; offset: $10 (16)
  386. userDataPtr                 ds.l    1                ; offset: $12 (18)
  387. sizeof                     EQU *                    ; size:   $16 (22)
  388.                         ENDR
  389. TCPClosePB                RECORD 0
  390. ulpTimeoutValue             ds.b    1                ; offset: $0 (0)
  391. ulpTimeoutAction         ds.b    1                ; offset: $1 (1)
  392. validityFlags             ds.b    1                ; offset: $2 (2)
  393. filler                     ds.b    1                ; offset: $3 (3)        ;  Filler for proper byte alignment     
  394. userDataPtr                 ds.l    1                ; offset: $4 (4)
  395. sizeof                     EQU *                    ; size:   $8 (8)
  396.                         ENDR
  397. HistoBucket                RECORD 0
  398. value                     ds.w    1                ; offset: $0 (0)
  399. counter                     ds.l    1                ; offset: $2 (2)
  400. sizeof                     EQU *                    ; size:   $6 (6)
  401.                         ENDR
  402.  
  403. NumOfHistoBuckets                EQU        7
  404. TCPConnectionStats        RECORD 0
  405. dataPktsRcvd             ds.l    1                ; offset: $0 (0)
  406. dataPktsSent             ds.l    1                ; offset: $4 (4)
  407. dataPktsResent             ds.l    1                ; offset: $8 (8)
  408. bytesRcvd                 ds.l    1                ; offset: $C (12)
  409. bytesRcvdDup             ds.l    1                ; offset: $10 (16)
  410. bytesRcvdPastWindow         ds.l    1                ; offset: $14 (20)
  411. bytesSent                 ds.l    1                ; offset: $18 (24)
  412. bytesResent                 ds.l    1                ; offset: $1C (28)
  413. numHistoBuckets             ds.w    1                ; offset: $20 (32)
  414. sentSizeHisto             ds.b    7 * HistoBucket.sizeof ; offset: $22 (34)
  415. lastRTT                     ds.w    1                ; offset: $4C (76)
  416. tmrSRTT                     ds.w    1                ; offset: $4E (78)
  417. rttVariance                 ds.w    1                ; offset: $50 (80)
  418. tmrRTO                     ds.w    1                ; offset: $52 (82)
  419. sendTries                 ds.b    1                ; offset: $54 (84)
  420. sourchQuenchRcvd         ds.b    1                ; offset: $55 (85)
  421. sizeof                     EQU *                    ; size:   $56 (86)
  422.                         ENDR
  423. TCPStatusPB                RECORD 0
  424. ulpTimeoutValue             ds.b    1                ; offset: $0 (0)
  425. ulpTimeoutAction         ds.b    1                ; offset: $1 (1)
  426. unused                     ds.l    1                ; offset: $2 (2)
  427. remoteHost                 ds.l    1                ; offset: $6 (6)
  428. remotePort                 ds.w    1                ; offset: $A (10)
  429. localHost                 ds.l    1                ; offset: $C (12)
  430. localPort                 ds.w    1                ; offset: $10 (16)
  431. tosFlags                 ds.b    1                ; offset: $12 (18)
  432. precedence                 ds.b    1                ; offset: $13 (19)
  433. connectionState             ds.b    1                ; offset: $14 (20)
  434. filler                     ds.b    1                ; offset: $15 (21)        ;  Filler for proper byte alignment     
  435. sendWindow                 ds.w    1                ; offset: $16 (22)
  436. rcvWindow                 ds.w    1                ; offset: $18 (24)
  437. amtUnackedData             ds.w    1                ; offset: $1A (26)
  438. amtUnreadData             ds.w    1                ; offset: $1C (28)
  439. securityLevelPtr         ds.l    1                ; offset: $1E (30)
  440. sendUnacked                 ds.l    1                ; offset: $22 (34)
  441. sendNext                 ds.l    1                ; offset: $26 (38)
  442. congestionWindow         ds.l    1                ; offset: $2A (42)
  443. rcvNext                     ds.l    1                ; offset: $2E (46)
  444. srtt                     ds.l    1                ; offset: $32 (50)
  445. lastRTT                     ds.l    1                ; offset: $36 (54)
  446. sendMaxSegSize             ds.l    1                ; offset: $3A (58)
  447. connStatPtr                 ds.l    1                ; offset: $3E (62)
  448. userDataPtr                 ds.l    1                ; offset: $42 (66)
  449. sizeof                     EQU *                    ; size:   $46 (70)
  450.                         ENDR
  451. TCPAbortPB                RECORD 0
  452. userDataPtr                 ds.l    1                ; offset: $0 (0)
  453. sizeof                     EQU *                    ; size:   $4 (4)
  454.                         ENDR
  455. TCPParam                RECORD 0
  456. tcpRtoA                     ds.l    1                ; offset: $0 (0)
  457. tcpRtoMin                 ds.l    1                ; offset: $4 (4)
  458. tcpRtoMax                 ds.l    1                ; offset: $8 (8)
  459. tcpMaxSegSize             ds.l    1                ; offset: $C (12)
  460. tcpMaxConn                 ds.l    1                ; offset: $10 (16)
  461. tcpMaxWindow             ds.l    1                ; offset: $14 (20)
  462. sizeof                     EQU *                    ; size:   $18 (24)
  463.                         ENDR
  464. TCPStats                RECORD 0
  465. tcpConnAttempts             ds.l    1                ; offset: $0 (0)
  466. tcpConnOpened             ds.l    1                ; offset: $4 (4)
  467. tcpConnAccepted             ds.l    1                ; offset: $8 (8)
  468. tcpConnClosed             ds.l    1                ; offset: $C (12)
  469. tcpConnAborted             ds.l    1                ; offset: $10 (16)
  470. tcpOctetsIn                 ds.l    1                ; offset: $14 (20)
  471. tcpOctetsOut             ds.l    1                ; offset: $18 (24)
  472. tcpOctetsInDup             ds.l    1                ; offset: $1C (28)
  473. tcpOctetsRetrans         ds.l    1                ; offset: $20 (32)
  474. tcpInputPkts             ds.l    1                ; offset: $24 (36)
  475. tcpOutputPkts             ds.l    1                ; offset: $28 (40)
  476. tcpDupPkts                 ds.l    1                ; offset: $2C (44)
  477. tcpRetransPkts             ds.l    1                ; offset: $30 (48)
  478. sizeof                     EQU *                    ; size:   $34 (52)
  479.                         ENDR
  480. ; typedef StreamPtr *                    StreamPPtr
  481.  
  482. TCPGlobalInfoPB            RECORD 0
  483. tcpParamPtr                 ds.l    1                ; offset: $0 (0)
  484. tcpStatsPtr                 ds.l    1                ; offset: $4 (4)
  485. tcpCDBTable                 ds.l    1                ; offset: $8 (8) <-- really an array of length one
  486. userDataPtr                 ds.l    1                ; offset: $C (12)
  487. maxTCPConnections         ds.w    1                ; offset: $10 (16)
  488. sizeof                     EQU *                    ; size:   $12 (18)
  489.                         ENDR
  490.  
  491.  
  492. TCPiopb                    RECORD 0
  493. fill12                     ds.b    12                ; offset: $0 (0)
  494. ioCompletion             ds.l    1                ; offset: $C (12)
  495. ioResult                 ds.w    1                ; offset: $10 (16)
  496. ioNamePtr                 ds.l    1                ; offset: $12 (18)
  497. ioVRefNum                 ds.w    1                ; offset: $16 (22)
  498. ioCRefNum                 ds.w    1                ; offset: $18 (24)
  499. csCode                     ds.w    1                ; offset: $1A (26)
  500. tcpStream                 ds.l    1                ; offset: $1C (28)
  501. create                     ds        TCPCreatePB        ; offset: $20 (32)
  502.                          ORG 32
  503. open                     ds        TCPOpenPB        ; offset: $20 (32)
  504.                          ORG 32
  505. send                     ds        TCPSendPB        ; offset: $20 (32)
  506.                          ORG 32
  507. receive                     ds        TCPReceivePB    ; offset: $20 (32)
  508.                          ORG 32
  509. close                     ds        TCPClosePB        ; offset: $20 (32)
  510.                          ORG 32
  511. abort                     ds        TCPAbortPB        ; offset: $20 (32)
  512.                          ORG 32
  513. status                     ds        TCPStatusPB        ; offset: $20 (32)
  514.                          ORG 32
  515. globalInfo                 ds        TCPGlobalInfoPB ; offset: $20 (32)
  516.                          ORG 102
  517. sizeof                     EQU *                    ; size:   $66 (102)
  518.                         ENDR
  519.  
  520. UDPCreate                        EQU        20
  521. UDPRead                            EQU        21
  522. UDPBfrReturn                    EQU        22
  523. UDPWrite                        EQU        23
  524. UDPRelease                        EQU        24
  525. UDPMaxMTUSize                    EQU        25
  526. UDPStatus                        EQU        26
  527. UDPMultiCreate                    EQU        27
  528. UDPMultiSend                    EQU        28
  529. UDPMultiRead                    EQU        29
  530. UDPCtlMax                        EQU        29
  531.  
  532. UDPDataArrival                    EQU        1
  533. UDPICMPReceived                    EQU        2
  534. lastUDPEvent                    EQU        32767
  535. ; typedef unsigned short                 UDPEventCode
  536.  
  537. ; typedef unsigned short                 udp_port
  538.  
  539. ;  for create and release calls 
  540. UDPCreatePB                RECORD 0
  541. rcvBuff                     ds.l    1                ; offset: $0 (0)
  542. rcvBuffLen                 ds.l    1                ; offset: $4 (4)
  543. notifyProc                 ds.l    1                ; offset: $8 (8)
  544. localPort                 ds.w    1                ; offset: $C (12)
  545. userDataPtr                 ds.l    1                ; offset: $E (14)
  546. endingPort                 ds.w    1                ; offset: $12 (18)
  547. sizeof                     EQU *                    ; size:   $14 (20)
  548.                         ENDR
  549. UDPSendPB                RECORD 0
  550. reserved                 ds.w    1                ; offset: $0 (0)
  551. remoteHost                 ds.l    1                ; offset: $2 (2)
  552. remotePort                 ds.w    1                ; offset: $6 (6)
  553. wdsPtr                     ds.l    1                ; offset: $8 (8)
  554. checkSum                 ds.b    1                ; offset: $C (12)
  555. filler                     ds.b    1                ; offset: $D (13)        ;  Filler for proper byte alignment     
  556. sendLength                 ds.w    1                ; offset: $E (14)
  557. userDataPtr                 ds.l    1                ; offset: $10 (16)
  558. localPort                 ds.w    1                ; offset: $14 (20)
  559. sizeof                     EQU *                    ; size:   $16 (22)
  560.                         ENDR
  561. ;  for receive and buffer return calls 
  562. UDPReceivePB            RECORD 0
  563. timeOut                     ds.w    1                ; offset: $0 (0)
  564. remoteHost                 ds.l    1                ; offset: $2 (2)
  565. remotePort                 ds.w    1                ; offset: $6 (6)
  566. rcvBuff                     ds.l    1                ; offset: $8 (8)
  567. rcvBuffLen                 ds.w    1                ; offset: $C (12)
  568. secondTimeStamp             ds.w    1                ; offset: $E (14)
  569. userDataPtr                 ds.l    1                ; offset: $10 (16)
  570. destHost                 ds.l    1                ; offset: $14 (20)        ;  only for use with multi rcv 
  571. destPort                 ds.w    1                ; offset: $18 (24)        ;  only for use with multi rcv 
  572. sizeof                     EQU *                    ; size:   $1A (26)
  573.                         ENDR
  574. UDPMTUPB                RECORD 0
  575. mtuSize                     ds.w    1                ; offset: $0 (0)
  576. remoteHost                 ds.l    1                ; offset: $2 (2)
  577. userDataPtr                 ds.l    1                ; offset: $6 (6)
  578. sizeof                     EQU *                    ; size:   $A (10)
  579.                         ENDR
  580.  
  581.  
  582. UDPiopb                    RECORD 0
  583. fill12                     ds.b    12                ; offset: $0 (0)
  584. ioCompletion             ds.l    1                ; offset: $C (12)
  585. ioResult                 ds.w    1                ; offset: $10 (16)
  586. ioNamePtr                 ds.l    1                ; offset: $12 (18)
  587. ioVRefNum                 ds.w    1                ; offset: $16 (22)
  588. ioCRefNum                 ds.w    1                ; offset: $18 (24)
  589. csCode                     ds.w    1                ; offset: $1A (26)
  590. udpStream                 ds.l    1                ; offset: $1C (28)
  591. create                     ds        UDPCreatePB        ; offset: $20 (32)
  592.                          ORG 32
  593. send                     ds        UDPSendPB        ; offset: $20 (32)
  594.                          ORG 32
  595. receive                     ds        UDPReceivePB    ; offset: $20 (32)
  596.                          ORG 32
  597. mtu                         ds        UDPMTUPB        ; offset: $20 (32)
  598.                          ORG 58
  599. sizeof                     EQU *                    ; size:   $3A (58)
  600.                         ENDR
  601.     ENDIF
  602.     ENDIF ; __MACTCP__ 
  603.  
  604.